function draw_grid(ctx, size, zoom) {
    ctx.save();
    ctx.beginPath();
    ctx.lineWidth = 1.0;
    ctx.strokeStyle = 'dimgray';
    for (var x = 0; x < size[0]; x += zoom) {
        ctx.moveTo(zoom / 2 + x, 0);
        ctx.lineTo(zoom / 2 + x, 1000);
    }
    for (var y = 0; y < size[1]; y += zoom) {
        ctx.moveTo(0, y);
        ctx.lineTo(2000, y);
    }
    ctx.stroke();
    ctx.restore();
}
function draw_auxiliary_line(ctx, x, y) {
    ctx.save();
    ctx.beginPath();
    ctx.lineWidth = 1.0;
    ctx.strokeStyle = 'red';
    ctx.moveTo(0, y);
    ctx.lineTo(2000, y);
    ctx.moveTo(x, 0);
    ctx.lineTo(x, 2000);
    ctx.stroke();
    ctx.restore();
}
function draw_pin_set(ctx, x, y, zoom) {
    ctx.save();
    ctx.beginPath();
    ctx.lineWidth = 2.0;
    ctx.strokeStyle = 'aliceblue';
    ctx.arc(x, y, zoom, 0, 2 * Math.PI);
    ctx.stroke();
    ctx.restore();
}
